[INFO] cloning repository https://github.com/JosieElliston/rectangle
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/JosieElliston/rectangle" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJosieElliston%2Frectangle", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJosieElliston%2Frectangle'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 046ca3b8746e6be5b435fa4c57ddc7033a37d34f
[INFO] checking JosieElliston/rectangle against try#d0ab665d12770dbaae620b539ee4319b83445f45 for pr-133502-24
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJosieElliston%2Frectangle" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/JosieElliston/rectangle
[INFO] finished tweaking git repo https://github.com/JosieElliston/rectangle
[INFO] tweaked toml for git repo https://github.com/JosieElliston/rectangle written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/JosieElliston/rectangle on toolchain d0ab665d12770dbaae620b539ee4319b83445f45
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+d0ab665d12770dbaae620b539ee4319b83445f45" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/JosieElliston/rectangle already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+d0ab665d12770dbaae620b539ee4319b83445f45" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] fe01c650b6a8f36565e39b8ad3f15e7a037a317706fddcde1eb1c6458a51b3b4
[INFO] running `Command { std: "docker" "start" "fe01c650b6a8f36565e39b8ad3f15e7a037a317706fddcde1eb1c6458a51b3b4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "fe01c650b6a8f36565e39b8ad3f15e7a037a317706fddcde1eb1c6458a51b3b4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "fe01c650b6a8f36565e39b8ad3f15e7a037a317706fddcde1eb1c6458a51b3b4" "/opt/rustwide/cargo-home/bin/cargo" "+d0ab665d12770dbaae620b539ee4319b83445f45" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "fe01c650b6a8f36565e39b8ad3f15e7a037a317706fddcde1eb1c6458a51b3b4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "fe01c650b6a8f36565e39b8ad3f15e7a037a317706fddcde1eb1c6458a51b3b4" "/opt/rustwide/cargo-home/bin/cargo" "+d0ab665d12770dbaae620b539ee4319b83445f45" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.103
[INFO] [stderr]    Compiling rustix v1.1.2
[INFO] [stderr]    Compiling quote v1.0.42
[INFO] [stderr]    Compiling wayland-sys v0.31.7
[INFO] [stderr]    Compiling quick-xml v0.37.5
[INFO] [stderr]    Compiling wayland-client v0.31.11
[INFO] [stderr]    Compiling zerocopy v0.8.27
[INFO] [stderr]    Compiling wayland-backend v0.3.11
[INFO] [stderr]     Checking event-listener v5.4.1
[INFO] [stderr]    Compiling endi v1.1.0
[INFO] [stderr]     Checking winnow v0.7.13
[INFO] [stderr]    Compiling static_assertions v1.1.0
[INFO] [stderr]     Checking getrandom v0.3.4
[INFO] [stderr]    Compiling nix v0.30.1
[INFO] [stderr]     Checking signal-hook-registry v1.4.6
[INFO] [stderr]     Checking ttf-parser v0.25.1
[INFO] [stderr]     Checking async-executor v1.13.3
[INFO] [stderr]    Compiling gl_generator v0.14.0
[INFO] [stderr]     Checking memmap2 v0.9.9
[INFO] [stderr]    Compiling icu_properties_data v2.1.1
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]     Checking event-listener-strategy v0.5.4
[INFO] [stderr]     Checking aligned v0.4.2
[INFO] [stderr]     Checking x11-dl v2.21.0
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking core2 v0.4.0
[INFO] [stderr]     Checking nom v8.0.0
[INFO] [stderr]     Checking accesskit_consumer v0.31.0
[INFO] [stderr]     Checking bitstream-io v4.9.0
[INFO] [stderr]     Checking async-channel v2.5.0
[INFO] [stderr]     Checking async-lock v3.4.1
[INFO] [stderr]     Checking blocking v1.6.2
[INFO] [stderr]     Checking async-broadcast v0.7.2
[INFO] [stderr]     Checking flate2 v1.1.5
[INFO] [stderr]     Checking syn v2.0.110
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking xkbcommon-dl v0.4.2
[INFO] [stderr]     Checking pxfm v0.1.25
[INFO] [stderr]    Compiling simd_helpers v0.1.0
[INFO] [stderr]     Checking zune-core v0.5.0
[INFO] [stderr]    Compiling glutin_egl_sys v0.7.1
[INFO] [stderr]    Compiling glutin_glx_sys v0.6.1
[INFO] [stderr]     Checking epaint_default_fonts v0.33.2
[INFO] [stderr]    Compiling wayland-scanner v0.31.7
[INFO] [stderr]     Checking gif v0.14.0
[INFO] [stderr]     Checking zune-jpeg v0.5.5
[INFO] [stderr]     Checking png v0.18.0
[INFO] [stderr]    Compiling glutin v0.32.3
[INFO] [stderr]    Compiling glutin-winit v0.5.0
[INFO] [stderr]    Compiling matrixmultiply v0.3.10
[INFO] [stderr]     Checking rand_core v0.9.3
[INFO] [stderr]     Checking approx v0.5.1
[INFO] [stderr]     Checking num-complex v0.4.6
[INFO] [stderr]     Checking rawpointer v0.2.1
[INFO] [stderr]     Checking glow v0.16.0
[INFO] [stderr]     Checking owned_ttf_parser v0.25.1
[INFO] [stderr]     Checking ab_glyph v0.2.32
[INFO] [stderr]     Checking moxcms v0.7.9
[INFO] [stderr]     Checking polling v3.11.0
[INFO] [stderr]     Checking gethostname v1.1.0
[INFO] [stderr]     Checking x11rb v0.13.2
[INFO] [stderr]     Checking async-io v2.6.0
[INFO] [stderr]     Checking async-signal v0.2.13
[INFO] [stderr]     Checking async-process v2.5.0
[INFO] [stderr]     Checking wayland-csd-frame v0.3.0
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]     Checking wayland-protocols v0.32.9
[INFO] [stderr]     Checking wayland-cursor v0.31.11
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling enumflags2_derive v0.7.12
[INFO] [stderr]    Compiling bytemuck_derive v1.10.2
[INFO] [stderr]    Compiling zerocopy-derive v0.8.27
[INFO] [stderr]    Compiling tracing-attributes v0.1.30
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling equator-macro v0.4.2
[INFO] [stderr]    Compiling serde_repr v0.1.20
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling profiling-procmacros v1.0.17
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling thiserror-impl v2.0.17
[INFO] [stderr]     Checking profiling v1.0.17
[INFO] [stderr]    Compiling arg_enum_proc_macro v0.3.4
[INFO] [stderr]    Compiling num-derive v0.4.2
[INFO] [stderr]    Compiling fax_derive v0.2.0
[INFO] [stderr]     Checking equator v0.4.2
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling nalgebra-macros v0.3.0
[INFO] [stderr]     Checking aligned-vec v0.6.4
[INFO] [stderr]     Checking fax v0.2.6
[INFO] [stderr]     Checking v_frame v0.3.9
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]     Checking yoke v0.8.1
[INFO] [stderr]     Checking av1-grain v0.2.5
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking zerovec v0.11.5
[INFO] [stderr]     Checking zerotrie v0.2.3
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking bytemuck v1.24.0
[INFO] [stderr]     Checking calloop v0.13.0
[INFO] [stderr]     Checking thiserror v2.0.17
[INFO] [stderr]     Checking av-scenechange v0.14.1
[INFO] [stderr]     Checking calloop v0.14.3
[INFO] [stderr]     Checking tiny-skia-path v0.11.4
[INFO] [stderr]     Checking emath v0.33.2
[INFO] [stderr]     Checking qoi v0.4.1
[INFO] [stderr]     Checking safe_arch v1.0.0
[INFO] [stderr]     Checking calloop-wayland-source v0.3.0
[INFO] [stderr]     Checking ecolor v0.33.2
[INFO] [stderr]     Checking wide v1.5.0
[INFO] [stderr]     Checking tinystr v0.8.2
[INFO] [stderr]     Checking potential_utf v0.1.4
[INFO] [stderr]     Checking icu_collections v2.1.1
[INFO] [stderr]     Checking tiny-skia v0.11.4
[INFO] [stderr]     Checking rav1e v0.8.1
[INFO] [stderr]     Checking icu_locale_core v2.1.1
[INFO] [stderr]     Checking calloop-wayland-source v0.4.1
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]     Checking icu_provider v2.1.1
[INFO] [stderr]     Checking zvariant_utils v3.2.1
[INFO] [stderr]     Checking enumflags2 v0.7.12
[INFO] [stderr]     Checking quick-xml v0.36.2
[INFO] [stderr]     Checking uuid v1.18.1
[INFO] [stderr]     Checking ahash v0.8.12
[INFO] [stderr]     Checking half v2.7.1
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking icu_properties v2.1.1
[INFO] [stderr]     Checking icu_normalizer v2.1.1
[INFO] [stderr]     Checking epaint v0.33.2
[INFO] [stderr]    Compiling zvariant_derive v5.8.0
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking tiff v0.10.3
[INFO] [stderr]     Checking exr v1.74.0
[INFO] [stderr]     Checking rand v0.9.2
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking url v2.5.7
[INFO] [stderr]    Compiling zvariant v5.8.0
[INFO] [stderr]     Checking egui v0.33.2
[INFO] [stderr]     Checking webbrowser v1.0.6
[INFO] [stderr]     Checking simba v0.10.0
[INFO] [stderr]     Checking wayland-protocols-wlr v0.3.9
[INFO] [stderr]     Checking wayland-protocols-plasma v0.3.9
[INFO] [stderr]     Checking wayland-protocols-experimental v20250721.0.1
[INFO] [stderr]     Checking wayland-protocols-misc v0.3.9
[INFO] [stderr]     Checking zbus_names v4.2.0
[INFO] [stderr]     Checking smithay-client-toolkit v0.19.2
[INFO] [stderr]     Checking smithay-client-toolkit v0.20.0
[INFO] [stderr]     Checking ravif v0.12.0
[INFO] [stderr]     Checking zbus_xml v5.0.2
[INFO] [stderr]     Checking image v0.25.9
[INFO] [stderr]     Checking zbus-lockstep v0.5.1
[INFO] [stderr]     Checking sctk-adwaita v0.10.1
[INFO] [stderr]    Compiling zbus_macros v5.12.0
[INFO] [stderr]     Checking smithay-clipboard v0.7.3
[INFO] [stderr]     Checking winit v0.30.12
[INFO] [stderr]    Compiling zbus-lockstep-macros v0.5.1
[INFO] [stderr]     Checking egui_glow v0.33.2
[INFO] [stderr]     Checking nalgebra v0.35.0
[INFO] [stderr]     Checking zbus v5.12.0
[INFO] [stderr]     Checking arboard v3.6.1
[INFO] [stderr]     Checking atspi-common v0.9.0
[INFO] [stderr]     Checking atspi-proxies v0.9.0
[INFO] [stderr]     Checking accesskit_atspi_common v0.14.2
[INFO] [stderr]     Checking atspi-connection v0.9.0
[INFO] [stderr]     Checking atspi v0.25.0
[INFO] [stderr]     Checking accesskit_unix v0.17.2
[INFO] [stderr]     Checking accesskit_winit v0.29.2
[INFO] [stderr]     Checking egui-winit v0.33.2
[INFO] [stderr]     Checking eframe v0.33.2
[INFO] [stderr]     Checking rectangle v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused variable: `layers`
[INFO] [stdout]    --> src/main.rs:721:13
[INFO] [stdout]     |
[INFO] [stdout] 721 |             ref layers,
[INFO] [stdout]     |             ^^^^^^^^^^ help: try ignoring the field: `layers: _`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `layers`
[INFO] [stdout]    --> src/main.rs:721:13
[INFO] [stdout]     |
[INFO] [stdout] 721 |             ref layers,
[INFO] [stdout]     |             ^^^^^^^^^^ help: try ignoring the field: `layers: _`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pos`
[INFO] [stdout]     --> src/main.rs:1695:34
[INFO] [stdout]      |
[INFO] [stdout] 1695 | ...                   let (pos, depth) = self.cam_4d_to_3d.project(&pos);
[INFO] [stdout]      |                            ^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pos`
[INFO] [stdout]     --> src/main.rs:1759:22
[INFO] [stdout]      |
[INFO] [stdout] 1759 |                 let (pos, depth_3d_to_2d) = if let Some(pos) = pos.as_array::<3>() {
[INFO] [stdout]      |                      ^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pos`
[INFO] [stdout]     --> src/main.rs:1503:28
[INFO] [stdout]      |
[INFO] [stdout] 1503 |         fn sticker_geom_nd(pos: &[Coord]) {}
[INFO] [stdout]      |                            ^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `shape`
[INFO] [stdout]     --> src/main.rs:1505:28
[INFO] [stdout]      |
[INFO] [stdout] 1505 |         fn sticker_geom_5d(shape: &[Cut; 5], pos: &[Coord; 5]) -> [[[[f32; 5]; 4]; 6]; 8] {
[INFO] [stdout]      |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_shape`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pos`
[INFO] [stdout]     --> src/main.rs:1505:46
[INFO] [stdout]      |
[INFO] [stdout] 1505 |         fn sticker_geom_5d(shape: &[Cut; 5], pos: &[Coord; 5]) -> [[[[f32; 5]; 4]; 6]; 8] {
[INFO] [stdout]      |                                              ^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cam_nd_to_4d`
[INFO] [stdout]     --> src/main.rs:1654:13
[INFO] [stdout]      |
[INFO] [stdout] 1654 |             cam_nd_to_4d: &CameraNdTo4d,
[INFO] [stdout]      |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cam_nd_to_4d`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `into_axis`, `name`, and `side_key` are never used
[INFO] [stdout]   --> src/main.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl Side {
[INFO] [stdout]    | --------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 34 |     fn into_axis(self) -> Axis {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 67 |     fn name(self) -> char {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 75 |     fn side_key(self) -> char {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `axis_key` is never used
[INFO] [stdout]    --> src/main.rs:162:8
[INFO] [stdout]     |
[INFO] [stdout] 138 | impl Axis {
[INFO] [stdout]     | --------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 162 |     fn axis_key(self) -> char {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `try_new`, `new`, and `piece` are never used
[INFO] [stdout]    --> src/main.rs:328:8
[INFO] [stdout]     |
[INFO] [stdout] 323 | impl Sticker {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 328 |     fn try_new(shape: &[Cut], coords: Vec<Coord>) -> Option<Self> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 332 |     fn new(shape: &[Cut], coords: Vec<Coord>) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 341 |     fn piece(&self, shape: &[Cut]) -> Piece {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `sides` is never used
[INFO] [stdout]    --> src/main.rs:404:8
[INFO] [stdout]     |
[INFO] [stdout] 386 | impl Piece {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 404 |     fn sides(&self, shape: &[Cut]) -> impl Iterator<Item = Side> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `inverse` is never used
[INFO] [stdout]    --> src/main.rs:452:8
[INFO] [stdout]     |
[INFO] [stdout] 451 | impl SideTurn {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] 452 |     fn inverse(&self) -> Self {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `inverse` is never used
[INFO] [stdout]    --> src/main.rs:469:8
[INFO] [stdout]     |
[INFO] [stdout] 468 | impl PuzzleTurn {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] 469 |     fn inverse(&self) -> Self {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `inverse` is never used
[INFO] [stdout]    --> src/main.rs:483:8
[INFO] [stdout]     |
[INFO] [stdout] 482 | impl Turn {
[INFO] [stdout]     | --------- method in this implementation
[INFO] [stdout] 483 |     fn inverse(&self) -> Self {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `width`, `height`, `mapping`, and `inverse` are never read
[INFO] [stdout]    --> src/main.rs:941:5
[INFO] [stdout]     |
[INFO] [stdout] 940 | struct Layout2d {
[INFO] [stdout]     |        -------- fields in this struct
[INFO] [stdout] 941 |     width: usize,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 942 |     height: usize,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 943 |     mapping: HashMap<Position, (usize, usize)>,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 944 |     inverse: HashMap<(usize, usize), Position>,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Layout2d` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `outline_color`, `outline_width`, `sticker_scale`, and `sticker_opacity` are never read
[INFO] [stdout]     --> src/main.rs:1137:5
[INFO] [stdout]      |
[INFO] [stdout] 1136 | struct StickerFormatBuilder {
[INFO] [stdout]      |        -------------------- fields in this struct
[INFO] [stdout] 1137 |     outline_color: Option<Color32>,
[INFO] [stdout]      |     ^^^^^^^^^^^^^
[INFO] [stdout] 1138 |     outline_width: Option<f32>,
[INFO] [stdout]      |     ^^^^^^^^^^^^^
[INFO] [stdout] 1139 |     sticker_scale: Option<f32>,
[INFO] [stdout]      |     ^^^^^^^^^^^^^
[INFO] [stdout] 1140 |     sticker_opacity: Option<f32>,
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `StickerFormatBuilder` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `NONE`, `update`, and `build_or` are never used
[INFO] [stdout]     --> src/main.rs:1143:15
[INFO] [stdout]      |
[INFO] [stdout] 1142 | impl StickerFormatBuilder {
[INFO] [stdout]      | ------------------------- associated items in this implementation
[INFO] [stdout] 1143 |     pub const NONE: Self = StickerFormatBuilder {
[INFO] [stdout]      |               ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1150 |     fn update(&mut self, other: &StickerFormatBuilder) {
[INFO] [stdout]      |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1157 |     fn build_or(&self, default: &StickerFormat) -> StickerFormat {
[INFO] [stdout]      |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `outline_color`, `outline_width`, `sticker_scale`, and `sticker_opacity` are never read
[INFO] [stdout]     --> src/main.rs:1170:5
[INFO] [stdout]      |
[INFO] [stdout] 1169 | struct StickerFormat {
[INFO] [stdout]      |        ------------- fields in this struct
[INFO] [stdout] 1170 |     outline_color: Color32,
[INFO] [stdout]      |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1173 |     outline_width: f32,
[INFO] [stdout]      |     ^^^^^^^^^^^^^
[INFO] [stdout] 1174 |     /// lives in [0.0, 1.0]
[INFO] [stdout] 1175 |     sticker_scale: f32,
[INFO] [stdout]      |     ^^^^^^^^^^^^^
[INFO] [stdout] 1176 |     /// lives in [0.0, 1.0]
[INFO] [stdout] 1177 |     sticker_opacity: f32,
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `StickerFormat` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `must_have` and `cant_have` are never read
[INFO] [stdout]     --> src/main.rs:1192:5
[INFO] [stdout]      |
[INFO] [stdout] 1191 | struct FilterTerm {
[INFO] [stdout]      |        ---------- fields in this struct
[INFO] [stdout] 1192 |     must_have: HashSet<Side>,
[INFO] [stdout]      |     ^^^^^^^^^
[INFO] [stdout] 1193 |     cant_have: HashSet<Side>,
[INFO] [stdout]      |     ^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `FilterTerm` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `contains` is never used
[INFO] [stdout]     --> src/main.rs:1196:8
[INFO] [stdout]      |
[INFO] [stdout] 1195 | impl FilterTerm {
[INFO] [stdout]      | --------------- method in this implementation
[INFO] [stdout] 1196 |     fn contains(&self, shape: &[Cut], piece: &Piece) -> bool {
[INFO] [stdout]      |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `terms` and `format` are never read
[INFO] [stdout]     --> src/main.rs:1212:5
[INFO] [stdout]      |
[INFO] [stdout] 1211 | struct Filter {
[INFO] [stdout]      |        ------ fields in this struct
[INFO] [stdout] 1212 |     terms: Vec<FilterTerm>,
[INFO] [stdout]      |     ^^^^^
[INFO] [stdout] 1213 |     format: StickerFormatBuilder,
[INFO] [stdout]      |     ^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `Filter` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `contains` is never used
[INFO] [stdout]     --> src/main.rs:1216:8
[INFO] [stdout]      |
[INFO] [stdout] 1215 | impl Filter {
[INFO] [stdout]      | ----------- method in this implementation
[INFO] [stdout] 1216 |     fn contains(&self, shape: &[Cut], piece: &Piece) -> bool {
[INFO] [stdout]      |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]     --> src/main.rs:1224:20
[INFO] [stdout]      |
[INFO] [stdout] 1224 | struct FilterStage(Vec<Filter>);
[INFO] [stdout]      |        ----------- ^^^^^^^^^^^
[INFO] [stdout]      |        |
[INFO] [stdout]      |        field in this struct
[INFO] [stdout]      |
[INFO] [stdout]      = help: consider removing this field
[INFO] [stdout]      = note: `FilterStage` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]     --> src/main.rs:1237:23
[INFO] [stdout]      |
[INFO] [stdout] 1237 | struct FilterSequence(Vec<FilterStage>);
[INFO] [stdout]      |        -------------- ^^^^^^^^^^^^^^^^
[INFO] [stdout]      |        |
[INFO] [stdout]      |        field in this struct
[INFO] [stdout]      |
[INFO] [stdout]      = help: consider removing this field
[INFO] [stdout]      = note: `FilterSequence` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]     --> src/main.rs:1250:5
[INFO] [stdout]      |
[INFO] [stdout] 1245 | struct App {
[INFO] [stdout]      |        --- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 1250 |     layout: Layout2d,
[INFO] [stdout]      |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1253 |     side_positions: HashMap<Side, Piece>,
[INFO] [stdout]      |     ^^^^^^^^^^^^^^
[INFO] [stdout] 1254 |     turn_builder: TurnBuilder,
[INFO] [stdout] 1255 |     clicked_pieces: HashSet<Piece>,
[INFO] [stdout]      |     ^^^^^^^^^^^^^^
[INFO] [stdout] 1256 |     internal_color: Color32,
[INFO] [stdout]      |     ^^^^^^^^^^^^^^
[INFO] [stdout] 1257 |     internal_format: StickerFormat,
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 1258 |     hovered_format: StickerFormatBuilder,
[INFO] [stdout]      |     ^^^^^^^^^^^^^^
[INFO] [stdout] 1259 |     clicked_format: StickerFormatBuilder,
[INFO] [stdout]      |     ^^^^^^^^^^^^^^
[INFO] [stdout] 1260 |     gripped_format: StickerFormatBuilder,
[INFO] [stdout]      |     ^^^^^^^^^^^^^^
[INFO] [stdout] 1261 |     default_filter_format: StickerFormat,
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 1262 |     default_no_filter_format: StickerFormat,
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 1263 |     filter_sequence: FilterSequence,
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 1264 |     filter_stage: Option<usize>,
[INFO] [stdout]      |     ^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `App` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sticker_geom_nd` is never used
[INFO] [stdout]     --> src/main.rs:1503:12
[INFO] [stdout]      |
[INFO] [stdout] 1503 |         fn sticker_geom_nd(pos: &[Coord]) {}
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sticker_geom_5d` is never used
[INFO] [stdout]     --> src/main.rs:1505:12
[INFO] [stdout]      |
[INFO] [stdout] 1505 |         fn sticker_geom_5d(shape: &[Cut; 5], pos: &[Coord; 5]) -> [[[[f32; 5]; 4]; 6]; 8] {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pos`
[INFO] [stdout]     --> src/main.rs:1695:34
[INFO] [stdout]      |
[INFO] [stdout] 1695 | ...                   let (pos, depth) = self.cam_4d_to_3d.project(&pos);
[INFO] [stdout]      |                            ^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pos`
[INFO] [stdout]     --> src/main.rs:1759:22
[INFO] [stdout]      |
[INFO] [stdout] 1759 |                 let (pos, depth_3d_to_2d) = if let Some(pos) = pos.as_array::<3>() {
[INFO] [stdout]      |                      ^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pos`
[INFO] [stdout]     --> src/main.rs:1503:28
[INFO] [stdout]      |
[INFO] [stdout] 1503 |         fn sticker_geom_nd(pos: &[Coord]) {}
[INFO] [stdout]      |                            ^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `shape`
[INFO] [stdout]     --> src/main.rs:1505:28
[INFO] [stdout]      |
[INFO] [stdout] 1505 |         fn sticker_geom_5d(shape: &[Cut; 5], pos: &[Coord; 5]) -> [[[[f32; 5]; 4]; 6]; 8] {
[INFO] [stdout]      |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_shape`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pos`
[INFO] [stdout]     --> src/main.rs:1505:46
[INFO] [stdout]      |
[INFO] [stdout] 1505 |         fn sticker_geom_5d(shape: &[Cut; 5], pos: &[Coord; 5]) -> [[[[f32; 5]; 4]; 6]; 8] {
[INFO] [stdout]      |                                              ^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/main.rs:1887:29
[INFO] [stdout]      |
[INFO] [stdout] 1887 | ...                   self.puzzle.turn(&turn);
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]      = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1887 |                             let _ = self.puzzle.turn(&turn);
[INFO] [stdout]      |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cam_nd_to_4d`
[INFO] [stdout]     --> src/main.rs:1654:13
[INFO] [stdout]      |
[INFO] [stdout] 1654 |             cam_nd_to_4d: &CameraNdTo4d,
[INFO] [stdout]      |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cam_nd_to_4d`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `into_axis`, `name`, and `side_key` are never used
[INFO] [stdout]   --> src/main.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl Side {
[INFO] [stdout]    | --------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 34 |     fn into_axis(self) -> Axis {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 67 |     fn name(self) -> char {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 75 |     fn side_key(self) -> char {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `axis_key` is never used
[INFO] [stdout]    --> src/main.rs:162:8
[INFO] [stdout]     |
[INFO] [stdout] 138 | impl Axis {
[INFO] [stdout]     | --------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 162 |     fn axis_key(self) -> char {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `piece` is never used
[INFO] [stdout]    --> src/main.rs:341:8
[INFO] [stdout]     |
[INFO] [stdout] 323 | impl Sticker {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 341 |     fn piece(&self, shape: &[Cut]) -> Piece {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `width` and `height` are never read
[INFO] [stdout]    --> src/main.rs:941:5
[INFO] [stdout]     |
[INFO] [stdout] 940 | struct Layout2d {
[INFO] [stdout]     |        -------- fields in this struct
[INFO] [stdout] 941 |     width: usize,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 942 |     height: usize,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Layout2d` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `outline_color`, `outline_width`, `sticker_scale`, and `sticker_opacity` are never read
[INFO] [stdout]     --> src/main.rs:1137:5
[INFO] [stdout]      |
[INFO] [stdout] 1136 | struct StickerFormatBuilder {
[INFO] [stdout]      |        -------------------- fields in this struct
[INFO] [stdout] 1137 |     outline_color: Option<Color32>,
[INFO] [stdout]      |     ^^^^^^^^^^^^^
[INFO] [stdout] 1138 |     outline_width: Option<f32>,
[INFO] [stdout]      |     ^^^^^^^^^^^^^
[INFO] [stdout] 1139 |     sticker_scale: Option<f32>,
[INFO] [stdout]      |     ^^^^^^^^^^^^^
[INFO] [stdout] 1140 |     sticker_opacity: Option<f32>,
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `StickerFormatBuilder` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `NONE`, `update`, and `build_or` are never used
[INFO] [stdout]     --> src/main.rs:1143:15
[INFO] [stdout]      |
[INFO] [stdout] 1142 | impl StickerFormatBuilder {
[INFO] [stdout]      | ------------------------- associated items in this implementation
[INFO] [stdout] 1143 |     pub const NONE: Self = StickerFormatBuilder {
[INFO] [stdout]      |               ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1150 |     fn update(&mut self, other: &StickerFormatBuilder) {
[INFO] [stdout]      |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1157 |     fn build_or(&self, default: &StickerFormat) -> StickerFormat {
[INFO] [stdout]      |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `outline_color`, `outline_width`, `sticker_scale`, and `sticker_opacity` are never read
[INFO] [stdout]     --> src/main.rs:1170:5
[INFO] [stdout]      |
[INFO] [stdout] 1169 | struct StickerFormat {
[INFO] [stdout]      |        ------------- fields in this struct
[INFO] [stdout] 1170 |     outline_color: Color32,
[INFO] [stdout]      |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1173 |     outline_width: f32,
[INFO] [stdout]      |     ^^^^^^^^^^^^^
[INFO] [stdout] 1174 |     /// lives in [0.0, 1.0]
[INFO] [stdout] 1175 |     sticker_scale: f32,
[INFO] [stdout]      |     ^^^^^^^^^^^^^
[INFO] [stdout] 1176 |     /// lives in [0.0, 1.0]
[INFO] [stdout] 1177 |     sticker_opacity: f32,
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `StickerFormat` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `must_have` and `cant_have` are never read
[INFO] [stdout]     --> src/main.rs:1192:5
[INFO] [stdout]      |
[INFO] [stdout] 1191 | struct FilterTerm {
[INFO] [stdout]      |        ---------- fields in this struct
[INFO] [stdout] 1192 |     must_have: HashSet<Side>,
[INFO] [stdout]      |     ^^^^^^^^^
[INFO] [stdout] 1193 |     cant_have: HashSet<Side>,
[INFO] [stdout]      |     ^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `FilterTerm` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `contains` is never used
[INFO] [stdout]     --> src/main.rs:1196:8
[INFO] [stdout]      |
[INFO] [stdout] 1195 | impl FilterTerm {
[INFO] [stdout]      | --------------- method in this implementation
[INFO] [stdout] 1196 |     fn contains(&self, shape: &[Cut], piece: &Piece) -> bool {
[INFO] [stdout]      |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `terms` and `format` are never read
[INFO] [stdout]     --> src/main.rs:1212:5
[INFO] [stdout]      |
[INFO] [stdout] 1211 | struct Filter {
[INFO] [stdout]      |        ------ fields in this struct
[INFO] [stdout] 1212 |     terms: Vec<FilterTerm>,
[INFO] [stdout]      |     ^^^^^
[INFO] [stdout] 1213 |     format: StickerFormatBuilder,
[INFO] [stdout]      |     ^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `Filter` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `contains` is never used
[INFO] [stdout]     --> src/main.rs:1216:8
[INFO] [stdout]      |
[INFO] [stdout] 1215 | impl Filter {
[INFO] [stdout]      | ----------- method in this implementation
[INFO] [stdout] 1216 |     fn contains(&self, shape: &[Cut], piece: &Piece) -> bool {
[INFO] [stdout]      |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]     --> src/main.rs:1224:20
[INFO] [stdout]      |
[INFO] [stdout] 1224 | struct FilterStage(Vec<Filter>);
[INFO] [stdout]      |        ----------- ^^^^^^^^^^^
[INFO] [stdout]      |        |
[INFO] [stdout]      |        field in this struct
[INFO] [stdout]      |
[INFO] [stdout]      = help: consider removing this field
[INFO] [stdout]      = note: `FilterStage` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]     --> src/main.rs:1237:23
[INFO] [stdout]      |
[INFO] [stdout] 1237 | struct FilterSequence(Vec<FilterStage>);
[INFO] [stdout]      |        -------------- ^^^^^^^^^^^^^^^^
[INFO] [stdout]      |        |
[INFO] [stdout]      |        field in this struct
[INFO] [stdout]      |
[INFO] [stdout]      = help: consider removing this field
[INFO] [stdout]      = note: `FilterSequence` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]     --> src/main.rs:1250:5
[INFO] [stdout]      |
[INFO] [stdout] 1245 | struct App {
[INFO] [stdout]      |        --- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 1250 |     layout: Layout2d,
[INFO] [stdout]      |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1253 |     side_positions: HashMap<Side, Piece>,
[INFO] [stdout]      |     ^^^^^^^^^^^^^^
[INFO] [stdout] 1254 |     turn_builder: TurnBuilder,
[INFO] [stdout] 1255 |     clicked_pieces: HashSet<Piece>,
[INFO] [stdout]      |     ^^^^^^^^^^^^^^
[INFO] [stdout] 1256 |     internal_color: Color32,
[INFO] [stdout]      |     ^^^^^^^^^^^^^^
[INFO] [stdout] 1257 |     internal_format: StickerFormat,
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 1258 |     hovered_format: StickerFormatBuilder,
[INFO] [stdout]      |     ^^^^^^^^^^^^^^
[INFO] [stdout] 1259 |     clicked_format: StickerFormatBuilder,
[INFO] [stdout]      |     ^^^^^^^^^^^^^^
[INFO] [stdout] 1260 |     gripped_format: StickerFormatBuilder,
[INFO] [stdout]      |     ^^^^^^^^^^^^^^
[INFO] [stdout] 1261 |     default_filter_format: StickerFormat,
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 1262 |     default_no_filter_format: StickerFormat,
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 1263 |     filter_sequence: FilterSequence,
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 1264 |     filter_stage: Option<usize>,
[INFO] [stdout]      |     ^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `App` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sticker_geom_nd` is never used
[INFO] [stdout]     --> src/main.rs:1503:12
[INFO] [stdout]      |
[INFO] [stdout] 1503 |         fn sticker_geom_nd(pos: &[Coord]) {}
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sticker_geom_5d` is never used
[INFO] [stdout]     --> src/main.rs:1505:12
[INFO] [stdout]      |
[INFO] [stdout] 1505 |         fn sticker_geom_5d(shape: &[Cut; 5], pos: &[Coord; 5]) -> [[[[f32; 5]; 4]; 6]; 8] {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/main.rs:1887:29
[INFO] [stdout]      |
[INFO] [stdout] 1887 | ...                   self.puzzle.turn(&turn);
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]      = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1887 |                             let _ = self.puzzle.turn(&turn);
[INFO] [stdout]      |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 51s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: glutin v0.32.3, glutin-winit v0.5.0, nix v0.30.1, winit v0.30.12
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 6`
[INFO] running `Command { std: "docker" "inspect" "fe01c650b6a8f36565e39b8ad3f15e7a037a317706fddcde1eb1c6458a51b3b4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fe01c650b6a8f36565e39b8ad3f15e7a037a317706fddcde1eb1c6458a51b3b4", kill_on_drop: false }`
[INFO] [stdout] fe01c650b6a8f36565e39b8ad3f15e7a037a317706fddcde1eb1c6458a51b3b4
